МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
кафедра „ЗАХИСТ ІНФОРМАЦІЇ”
ЗВІТ
до лабораторної роботи №4
З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ”
на тему: „РОБОТА З ТЕКСТОВИМИ ФАЙЛАМИ.
СИМВОЛЬНІ ТА РЯДКОВІ ЗМІННІ”
Варіант № 12
2. ПОВНИЙ ТЕКСТ ЗАВДАННЯ
Дано текстовий файл, в якому міститься програма мовою Турбо-Паскаль. Скласти блок-схеми алгоритмів та програму мовою Турбо-Паскаль для виведення на екран текстового файлу (Лабораторна робота №3) в якому не зустрічаються слова “for”, “then”, “іf”, “else”. Підрахувати кількість рядків, в яких кількість приголосних літер парна. Для обробки текстового файлу використовувати розроблені процедури та функції для роботи зі стрічками. Оформити виконання одного із завдань у вигляді підпрограми.
3. ОСТАТОЧНА ВЕРСІЯ БЛОК-СХЕМИ АЛГОРИТМУ
Функція nPrugol(s)
Підпрограма DelWord(is, s)
4. СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ПРОЦЕДУР І ФУНКЦІЙ, ВИКОРИСТАНИХ У ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
gol – константа перелічувального типу яка містить усі голосні літери;
all – константа перелічувального типу яка містить усі літери;
oper – константа перелічувального типу яка містить символи які можуть зустрічатися в тексті програми перед операторами “for”, “then”, “іf”, “else”;
n – змінна типу integer для зберігання даних про поточну кількість рядків у яких кількість приголосних букв є непарним;
j, i, count – змінні типу integer для зберігання проміжних значень у процедурах та функціях;
str – змінна типу string для зберігання проміжних текстових даних;
f – змінна типу text за допомогою якої здійснюється читання текстового файлу з диску;
DelWord(s1, s2) – користувацька процедура яка видаляє слово що міститься в стрічковій змінні s1 з стрічкової змінної s2;
nPrugol(s) – користувацька функція яка повертає кількість приголосних букв в рядку s;
clrscr – процедура очистки екрана яка об’явлена в модулі crt;
readkey – процедура яка очікує натискання будь-якої клавіші;
writeln – процедура виведення текстових повідомлень і значень змінних на екран чи у файл;
readln – процедура яка зчитує дані з клавіатури чи файлу та присвоює відповідне значення змінній;
Delete(s, i, j) – процедура яка видаляє з рядка s певну кількість символів j починаючи з i-того символу;
Inc(i) – процедура інкременту, яка збільшує числову змінну i на 1;
Assign – процедура яка зв’язує ідентифікатор текстової змінної з файлом на диску;
reset – процедура яка відкриває файл для читання;
close – процедура яка закриває файл;
Pos(s1, s2) – функція яка повертає позицію першого символу входження рядка s1 в рядок s2
Length(s) – функція яка повертає довжину рядка s;
Eof(f) – функція яка повертає true якщо досягнуто кінець файлу f;
mod – операція для знаходження остачі від ділення.
5. ОСТАТОЧНА ВЕРСІЯ ПРОГРАМИ
program lab4;
uses crt;
var f:text;
str:string; n:integer;
{===================================}
procedure DelWord(is:string; var s:string);
const oper=[' ',';','(',')','{','}'];
var i,j:integer;
begin
i:=Pos(is,s); j:=Length(is);
if (i<>0) and ((i=1) or (s[i-1] in oper)) and
((i+j-1=Length(s)) or (s[i+j] in oper)) then
Delete(s,i,j);
end;
{===================================}
function nPrugol(s:string):integer;
const gol=['a','e','i','y','o'];
all=['a'..'z'];
var i,count:integer;
begin
count:=0;
for i:=1 to Length(s) do
if (s[i] in all) and not (s[i] in gol) then
inc(count);
nPrugol:=count;
end;
{===================================}
begin
assign(f,'lab3.pas');
reset(f); clrscr; n:=0;
while not eof(f) do
begin
read(f,str);
DelWord('for',str);
DelWord('then',str);
DelWord('if',str);
DelWord('else',str);
writeln(str);
readln(f);
if (nPrugol(str) mod 2=1) then inc(n);
end;
writeln;
writeln('Kilkist radkiv z neparnoy kilkisty prugolosnuh:',n:3);
close(f); readkey;
end.
6. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ
program SortMas;
uses crt;
const n=5;
type ma...